1. Technical Field
The present invention relates generally to an improved distributed data processing system in particular to improved communication within a data processing system such as a multi-segment local area network. Still more particularly, the present invention relates to communication between nodes located in different segments in a multi-segment local area network.
2. Description of the Related Art
Data processing systems, such as computer networks are increasingly common in the modern workplace. Such networks typically include multiple workstations and host or server devices which may be distributed over a vast geographical distance. Such networks contains nodes; each node includes a communications control unit that is a unit that controls the transmission and reception of data in a network. The communications control unit may contain one or more ports. The node also may be a processing element, such as workstation or a personal computer. A processing element includes one or more processors, memory and a communications control unit. Simpler types of nodes such as, for example, a multiplexer, bridge, router, or terminal server may be used.
Many different topologies exist for connecting multiple computers into a distributed data processing system. One common technique for interconnecting multiple computers within a data processing system is to arrange the nodes in a ring structure. One known ring system is the so-called Token Ring local area network. The Token Ring local area network is defined by the I.E.E.E. 802.5 standard and is well known to those of ordinary skill in the art.
The SCI standard, I.E.E.E. std. 1596-1992, specifies that nodes in a network communicate via unidirectional rings. For larger systems, multiple interconnected rings may be employed such that the bandwidth function of a single ring does not create a bottleneck in communications within the network. As a result of such a system, packets may have to travel, from the source address, across several rings to reach a destination address. The "source address" is the node that originates the packet and the "destination address" is the node that is to receive the packet.
In sending packets, special nodes, also called "agent nodes" or "bridges" are employed to take a packet from one ring in the network and place the packet on to another ring in the network. The communications units in these nodes typically have two or more ports including an agent function. Under the SCI standard, anytime a packet is successfully received by a node either at its source address, destination address, or at an agent node, an "echo packet" is placed onto the ring as an indication to the transmitting node that the packet does not have to be retransmitted onto that ring. As a result, "ownership" or responsibility for a packet is transferred from node to node. If the receiving node is an agent node, it assumes the responsibility for ensuring that the packet is sent to the next node.
Problems, however, may occur when using agent nodes. For example, echo packets that are lost result in "confusion" over which node owns a packet. When an echo packet is lost, the destination node generating the echo packet has assumed ownership of the packet, while the node transmitting the packet still assumes that it has ownership of the packet because it has not received an echo packet. Consequently, the source node will eventually retry sending the packet. Thus, through a succession of errors it is possible that a number of different nodes will assume absolute ownership of the packet and attempt to transmit the packet to the destination address.
This situation can result in data integrity failure in a SCI standard network. SCI standard networks support shared coherent memory across many nodes. Thus, many of the packets are sent for the purpose of transferring ownership of data, purging, updating memory contents, etc. This type of coherent shared memory is sensitive to errant commands.
For example, execution of a command that transfers ownership of data two times could result in data integrity failure in a SCI standard network. In a situation in which two or more nodes have accepted ownership of a packet and each attempt to transmit the packet to the destination node, the original packet will be accepted and processed by the destination node. At a later time, a second packet, identical to the original packet, could be received and processed, possibly resulting in a data integrity failure in the SCI standard network. Therefore, it would be desirable to have a method and system for improving communications within a network employing agent nodes.